HarmonyOS-鸿蒙app开发 —基于java_平行视界_平行视界常见问题

HarmonyOS-鸿蒙app开发 —基于java_平行视界_平行视界常见问题

1.如何实现界面分离显示

平行视界中的左右窗口拆分显示以Page Ability为基本单位,应用界面需以Page Ability来实现和启动,才能做到左右分离显示。

例如,Page Ability A在左半边显示,如果想让其点开的新界面在右半边显示,那么新界面必须以Page Ability方式实现,如果只是打开一个Page Ability A上的子布局,新界面是无法拆分在右半边显示的。

2.如何避免启动窗口时左右跳动

应避免使用过渡Page Ability来实现Ability的启动。

例如,AbilityA->AbilityB->AbilityC->AbilityD,其中AbilityB和AbilityC是过渡窗口,平行视界模式下建议从AbilityA直接启动AbilityD。

3.如何避免界面布局兼容性问题

每个Page Ability根据其窗口显示大小独立布局

Page Ability获取其窗口显示大小的方法为:

Display display = DisplayManager.getInstance().getDefaultDisplay(context).get();

DisplayAttributes attributes = display.getAttributes();

int width = attributes.width;

int height = attributes.height;

上述方法中,context为Page Ability对应的上下文,每个Page Ability应严格使用自己的context获取自己的窗口宽高来进行布局。

Page Ability根据资源中的方向来布局

Page Ability获取窗口方向的方法为:

Configuration configuration = getContext().getResourceManager().getConfiguration();

int direction = configuration.direction;

不推荐使用窗口宽>高的方法来判断Page Ability为横屏布局。因为在平行视界双窗口状态下,支持应用内拖动的场景中,其中一个Page Ability的宽可能大于高,但通过上述接口获取的direction方向统一为竖屏。如果Page Ability是在平行视界状态下全屏显示,其direction的值为横屏。

Page Ability大小切换时不重启适配

推荐应用在Page Ability窗口大小切换时不重启适配。请在config.json文件中,对abilities对象的configChanges属性做如下配置:

{

“abilities”: [

{

“configChanges”: [“layout”, “orientation”],

}

],

}

并在Page Ability的onConfigurationUpdated()回调中更新宽高刷新布局。

避免Page Ability子布局的缺省重用

平行视界下,左右Page Ability同时显示,两个Page Ability中不能存在共用的公共布局模块。

布局自适应

应用复写onConfigurationUpdated()方法,重新获取窗口宽高等信息,并对界面布局做相应调整,如切换布局、调整控件位置和间距等。

@Override

public void onConfigurationUpdated (Configuration configuration) {

super. onConfigurationUpdated (neconfiguration);

Display display = DisplayManager.getInstance().getDefaultDisplay(context).get();

DisplayAttributes attributes = display.getAttributes();

int width = attributes.width;

int height = attributes.height;

}

4.平行视界双窗口下Page Ability的生命周期是怎样的

平行视界双窗口状态下,右侧顶部的Ability始终为ACTIVE状态,左侧顶部的Ability为ACTIVE或INACTIVE状态。

5.如何避免双窗口的音视频冲突

左右两个Page Ability同时显示,建议两边使用的播放器资源相互独立,互不影响;用户主动点击播放/暂停按钮可以控制任意一个窗口的音视频播放状态。

0 0 投票数
文章评分
订阅评论
提醒
0 评论
最旧
最新 最多投票
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x